Шаг 2. Перемещаем коммиты

Создадим тестовую ветку task/rebase с помощью команды git switch --create task/rebase.

Введена команда git switch --create task/rebase
Введена команда git switch --create task/rebase

Далее внесём изменение в index.html. Добавим для элемента <body> атрибут class со значением site-body.

Красная стрелка указывает на добавленный атрибут class со значением site-body
Красная стрелка указывает на добавленный атрибут class со значением site-body

Добавим изменение в индекс с помощью команды git add --all. Затем зафиксируем его — git commit --message "feat: added the class attribute for the body element".

Введена команда git commit --message
Введена команда git commit --message

Теперь перейдём на ветку main с помощью команды git switch main.

Введена команда git switch main
Введена команда git switch main

И нам нужно внести ещё одно изменение. Для элемента <html> добавим атрибут class со значением site-page.

Красная стрелка указывает на добавленный атрибут class со значением site-page для элемента html
Красная стрелка указывает на добавленный атрибут class со значением site-page для элемента html

Добавляем это изменение в индекс — git add --all, а после фиксируем — git commit --message "feat: added the class attribute for the html element".

Введена команда git commit --message
Введена команда git commit --message

После этого снова перейдём на ветку task/rebase при помощи команды git switch -.

Введена команда git switch -
Введена команда git switch -

Давайте посмотрим на хэш последнего коммита. Для этого воспользуемся командой git log --oneline -1.

Введена команда git log --oneline -1
Введена команда git log --oneline -1

Запомним краткое значение хэша — 3ac6467. Позже посмотрим, изменилось ли оно.

Вводим основную команду — git rebase main.

Введена команда git rebase main
Введена команда git rebase main

Всё, перемещение выполнено успешно, о чём говорит вывод Git. Снова введём команду git log --oneline -2.

Введена команда git log --oneline -2
Введена команда git log --oneline -2

Хэш коммита, который был сделан на ветке task/rebase, заменён: был 3ac6467, а стал b01ad3e.

Давайте перейдём в ветку main, используя команду git switch main. Нам нужно влить ветку task/rebase в ветку main.

Введена команда git switch main
Введена команда git switch main

Далее пропишем команду для слияния — git merge task/rebase.

Введена команда git merge task/rebase
Введена команда git merge task/rebase

Готово! Слияние прошло с использованием режима fast-forward. Если бы мы попытались прописать данную команду до git rebase, то у нас бы выполнилось слияние с использованием режима no-fast-forward, и тогда создался бы дополнительный коммит.

Напоследок давайте посмотрим на этой ветке историю коммитов. Вводим команду git log --oneline -2.

Введена команда git log --oneline -2
Введена команда git log --oneline -2

Коммиты полностью идентичны тем, что находятся на ветке task/rebase. В этот раз мы не будем удалять ветку — в следующих шагах разберём дополнительные возможности этой команды.